package drds.binlog.protocol.entry_protocol_proto;

/**
 * Created by ibm on 2018/10/4.
 */
public interface RowChangeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alibaba.otter.canal.protocol.RowChange)
        com.google.protobuf.MessageOrBuilder
{

    /**
     * <pre>
     * *tableId,由数据库产生*
     * </pre>
     * <p>
     * <code>int64 tableId = 1;</code>
     */
    long getTableId();

    /**
     * <code>.com.alibaba.otter.canal.protocol.EventType eventType = 2;</code>
     */
    int getEventTypeValue();

    /**
     * <code>.com.alibaba.otter.canal.protocol.EventType eventType = 2;</code>
     */
    EventType getEventType();

    /**
     * <code>bool isDdl = 10;</code>
     */
    boolean getIsDdl();

    /**
     * <pre>
     * * ddl/query的sql语句  *
     * </pre>
     * <p>
     * <code>string sql = 11;</code>
     */
    String getSql();

    /**
     * <pre>
     * * ddl/query的sql语句  *
     * </pre>
     * <p>
     * <code>string sql = 11;</code>
     */
    com.google.protobuf.ByteString
    getSqlBytes();

    /**
     * <pre>
     * * 一次数据库变更可能存在多行  *
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.RowData rowDatas = 12;</code>
     */
    java.util.List<RowData>
    getRowDatasList();

    /**
     * <pre>
     * * 一次数据库变更可能存在多行  *
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.RowData rowDatas = 12;</code>
     */
    RowData getRowDatas(int index);

    /**
     * <pre>
     * * 一次数据库变更可能存在多行  *
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.RowData rowDatas = 12;</code>
     */
    int getRowDatasCount();

    /**
     * <pre>
     * * 一次数据库变更可能存在多行  *
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.RowData rowDatas = 12;</code>
     */
    java.util.List<? extends RowDataOrBuilder>
    getRowDatasOrBuilderList();

    /**
     * <pre>
     * * 一次数据库变更可能存在多行  *
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.RowData rowDatas = 12;</code>
     */
    RowDataOrBuilder getRowDatasOrBuilder(
            int index);

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 13;</code>
     */
    java.util.List<Pair>
    getPropsList();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 13;</code>
     */
    Pair getProps(int index);

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 13;</code>
     */
    int getPropsCount();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 13;</code>
     */
    java.util.List<? extends PairOrBuilder>
    getPropsOrBuilderList();

    /**
     * <pre>
     * *预留扩展*
     * </pre>
     * <p>
     * <code>repeated .com.alibaba.otter.canal.protocol.Pair props = 13;</code>
     */
    PairOrBuilder getPropsOrBuilder(
            int index);

    /**
     * <pre>
     * * ddl/query的schemaName，会存在跨库ddl，需要保留执行ddl的当前schemaName  *
     * </pre>
     * <p>
     * <code>string ddlSchemaName = 14;</code>
     */
    String getDdlSchemaName();

    /**
     * <pre>
     * * ddl/query的schemaName，会存在跨库ddl，需要保留执行ddl的当前schemaName  *
     * </pre>
     * <p>
     * <code>string ddlSchemaName = 14;</code>
     */
    com.google.protobuf.ByteString
    getDdlSchemaNameBytes();

    public RowChange.EventTypePresentCase getEventTypePresentCase();

    public RowChange.IsDdlPresentCase getIsDdlPresentCase();
}
